package zhou_jing_kang;

/**
 * @Author zhoujingkang
 * @Date 2021/1/23 15:46
 * @Description 队列的进和出
 */
public class ZHOU_JING_KANG_TH_Q2 {
    //队列中的元素个数
    private int length = 0;
    //保存进入队列元素的数组
    private Object[] array;
    //队列的容量
    private int size;

    //构造器length 表示的就是队列初始化数据长度
    public ZHOU_JING_KANG_TH_Q2(int length){
        array= new Object[length];
        this.size=length;
    }

    //进队列：先判断队列中元素是否已满。若满，则输出队列已满，若没满，则进队列。
    public void push(Object o){
        this.arryChange();
        array[length] = o;
        length++;
    }
    //出队列：先判断队列中是否有元素。若有，则出队列，若没有，则说明队列为空。
    public void pull(){
        this.arryChange();
        if (array[length-1] != null){
            array[length-1] = null;
            length--;
        }
    }

    //输出栈中元素个数。
    public int getLength(){
        return this.length;
    }

    //判断队列中元素的个数是否满足进队列、出队列的条件
    public void arryChange(){
        if (this.length >= array.length){
            System.out.println("队列内存已满。");
        }else {
            System.out.println("队列为空！");
        }
    }

    public static void main(String[] args) {
        ZHOU_JING_KANG_TH_Q2 queue = new ZHOU_JING_KANG_TH_Q2(5);
        queue.push("1");
        queue.push("2");
        queue.push("3");
        queue.push("4");
        queue.push("5");
        System.out.println("队列中的元素个数为：" + queue.length);
    }
}
